OpenBuildings GenerativeComponents Readme

What's New in OpenBuildings GenerativeComponents CONNECT Edition Update 10

The following sections summarize the new features and enhancements in the OpenBuildings GenerativeComponents CONNECT Edition Update 10 and 10.1 release.

GenerativeComponents API Documentation

GC's API lets you create your own GC node types that can do anything any of GC's built-in node types can do, plus many other things of your own invention. Furthermore, you can create new global script functions for the user to use in their own script, that work directly with the underlying functions of GC and/or MicroStation. Refer GenerativeComponents API.

Operation Node

  • Nested Operations

    A number of operations have been added to the Operation Node, such as Counts, DeepestRanks, Indexes, IsLists, Ranks, and Successes which helps you dive deep into nested lists of data.

    This method/operator adds a parameter, "maxLevel", which specifies how deeply you want it to dive into the given list. The default value is 1, meaning you want to consider only the topmost items (level 1) in the given list.

    Following are some examples. First, here's the default case, where "maxLevel" has its default value of 1. (It may help to imagine that the numbers in "value1" are nodes having different levels of replication.)

    Some other cases that are available with different values of "maxLevel".

    The last case demonstrates that there is no harm in specifying a "maxLevels" that exceeds the given list's nest level.

  • Flatten Nested

    The "Flatten" operator takes an optional parameter, "maxLevels", whose default value is 1. The default parameter specifies the desired maximum number of levels in the resultant list.

    For example, given the list

    {1, 2, {3, 4, {5, {6}}, 7}, 8} …

    Flatten() yields

    {1, 2, 3, 4, 5, 6, 7, 8}

    as before. This result is the same as that of Flatten(1), since the default value of "maxLevels" is 1.
    Note: Any parameter value less than 1 is treated as 1.

    Flatten(2) yields

    {1, 2, {3, 4, 5, 6, 7}, 8}

    Flatten(3) yields

    {1, 2, {3, 4, {5, 6}, 7}, 8}

    Flatten(4) yields

    {1, 2, {3, 4, {5, {6}}, 7}, 8}

    Note: Any greater value of "maxLevels" yields the same result, since the given list’s number of levels does not exceed 4.

Node Interface Enhancements

  • In Between sessions, now you can preserve which input/output ports are pinned on each node rather than defaulting to their original states.
  • In Between sessions, if nodes have a drop-down list of values (such as a Value and Operation node ), then it preserves the expansion state of that list along with individual items therein.